

local function a()
    error("发生错误！")  -- 触发错误
end

local function b()
    a()  -- 调用 a()
end

local function c()
    b()  -- 调用 b()
end

-- 错误处理函数
local function err_handler(err)
    print("捕获到错误：", err)

    -- 生成包含错误信息和堆栈跟踪的字符串
    return debug.traceback("错误信息：" .. err, 1)  -- level=2 跳过错误处理器本身的调用
end


-- 使用 xpcall 捕获错误并处理
local success, result = xpcall(c, err_handler)
if not success then
    print("捕获到错误：")
    print(result)  -- 打印错误信息和堆栈跟踪
end